package com.info33.platform.business.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.info33.platform.business.app.entity.AppRoleUser;
import com.info33.platform.common.mvc.vo.Result;
import com.info33.platform.system.vo.SysUserVO;

import java.util.List;

/**
 * @author admin
 */
public interface AppRoleUserService extends IService<AppRoleUser> {

    /**
     * pc - 用户绑定角色
     *
     * @param uid-
     * @param ids-
     * @return -
     */
    void pcBind(Long uid, List<Long> ids);

    /**
     * app - 切换主要角色
     *
     * @param id-
     * @param currentUser-
     * @return -
     */
    Result<Object> appSwitch(Long id, SysUserVO currentUser);

    /**
     * 通过角色索引，添加一条用户角色关联信息，并设置为选中状态
     *
     * @param id        用户 id
     * @param roleKey   角色索引
     * @param principal 是否设为主要角色，default false
     * @param valid     是否有效，default true
     */
    void addOneInfo(Long id, Long roleKey, Boolean principal, Boolean valid);

    /**
     * 删除用户与角色的关联
     *
     * @param uid app 租户用户 id
     * @param rid 角色 id
     */
    void removeOneInfo(Long uid, Long rid);

}